A basic computer system consists of a central processing unit (CPU), main storage, and various items of peripheral equipment such as input/output devices (printers, card readers, etc.) and auxiliary storage devices (magnetic tape, magnetic disk, etc.). If a computer system consists of two or more interconnected CPUs that can communicate without manual intervention, it is called a multiprocessing system. The activities of such multiple processors can be highly coordinated with one another, or they can be relatively independent.
If an item of peripheral equipment can communicate directly with more than one processor--whether of a multiprocessing system or not--and if it can do so without manual intervention, such an item of peripheral equipment is said to be "shared" by such processors. The sharing of peripheral equipment by multiple processors thus gives each of such processors essentially independent access to the shared devices. Shared peripheral equipment can be used, therefore, to permit one CPU to backup another, to provide a means for CPU-to-CPU communication and for sharing of data in multiprocessing systems (through sharing of auxiliary storage devices), and/or to provide a common pool of peripheral equipment for use by two or more active processors--particularly in multiprocessing systems. Since the costs of CPUs are decreasing, relative to the costs of electro-mechanical peripheral equipment, and since the costs of creating, accessing, and maintaining large data bases are high, these latter two applications of shared peripheral equipment are of particular importance--and it is to these applications this invention is primarily related.
Shared peripheral equipment can be used in multiprocessing systems of various types. It can, for example, be used with highly coordinated processors to facilitate distributed, concurrent processing, or it can be used with relatively independent processors simply to make the peripheral equipment resources of one system available to another. In either case, peripheral equipment can be more efficiently utilized than with single-processor systems, and it is not necessary for any one computer to be used as an input/output control processor and data transfer buffer for the other processors of the multiprocessing system with an attendant elimination or avoidance of concomitant overhead at such a computer.
Independent of the application, however, the sharing of peripheral equipment always requires a switching means for automatically connecting each item of shared peripheral equipment to the appropriate CPU at the appropriate time. And it is a particular form of this switching means, i.e., a new switching architecture, that is the specific subject of this invention.
Description of the Prior Art PA0 Scope and Purpose of the Invention PA0 Interface Capture PA0 Data Capture
Existing, commercially available switching means for sharing computer peripheral equipment are illustrated by so-called "two-channel switches" found in certain IBM control units and, specifically, by the two-channel switch feature of the IBM 2314 Direct Access Storage Facility (Reference 5). Though this type of switch is program-controlled and therefore permits dynamic switching of its associated peripheral equipment, it nevertheless has several significant disadvantages relative to the scope and purpose of this invention:
1. It is device-resident--each item of shared peripheral equipment must have its own separate switch. If several devices are to be shared, this multiplies the hardware costs. Moreover, if an already installed item of non-shared peripheral equipment is to be shared, it must be modified to include the two-channel switch. PA1 2. It is not commercially available as a standard product for all items of peripheral equipment. Thus, in order to share an item of peripheral equipment for which the two-channel switch feature is not available, it is necessary to modify the equipment--and this can be expensive. Moreover, even if the switch is available, it must for some equipment be plant-installed, thereby adding further to the cost and inconvenience of peripheral equipment modification. PA1 3. It requires operating system software support. Inasmuch as this type of switching is dynamic, i.e., under program control, each CPU must be provided with the programs to operate the switch and, in particular, to reserve and release a shared item of peripheral equipment, and to recognize and react to status messages--as when a shared device is found to be busy with another CPU of the system. Such software is not always available, or it may be applicable only to very large computer systems. PA1 4. The switch is completely symmetrical--each CPU to which it is attached must have the necessary hardware/software capability to control the switch and the peripheral equipment with which it is associated. Moreover, when sharing organized data space (i.e., data fields) in direct-access auxiliary storage devices, each sharing processor must have similar software facilities to access the shared data space, i.e., to locate files and records within files distributed throughout the storage devices. Device-sharing by means of the two-channel switch can therefore require a costly duplication of system resources at each of such CPUs. PA1 1. without requiring modification to any element of main computer system hardware including, specifically, its CPU, main storage, and any item of peripheral equipment, PA1 2. without requiring modification to the operating system software of the main computer system. PA1 3. without disrupting the effective input/output configuration or operating capability of the main computer system, and PA1 4. without necessarily duplicating at the secondary computer system all of the costly hardware and software of the input/output facilities of the main computer system. PA1 1. without duplicating at the secondary computer the (ordinarily extensive and subject-to-change) access-method software of the main computer system, i.e., without introducing an overhead burden at the secondary computer associated with storing and executing fully implemented access-method software, and PA1 2. without requiring the secondary computer to know the precise location in the shared auxiliary storage device of any particular data field it may wish to access. PA1 1. without using main storage space of the main computer system for buffering data in transit to/from the secondary computer system, PA1 2. without creating interference at main storage of the main computer as data is moved from/to the file and to/from the secondary system, PA1 3. without using the processing resources of the main computer to manage the dispatching of data to/from the secondary system, PA1 4. without using the channels of the main computer (and requiring channel-to-channel adapters) to move data to/from the main storage of the secondary computer, and PA1 5. without introducing buffering and dispatching time delays.
Thus, while this type of switch permits automatic, dynamic sharing of peripheral equipment, it is nevertheless synonymous with a variety of disadvantages which limit its flexibility and applicability. As a result, shared peripheral equipment is found primarily in relatively large multi-processing systems consisting of processors of similar architecture supplied and supported by a single manufacturer.
If it were possible to share the peripheral equipment of a main computer system without the disadvantages of existing switching means, that is, without any prior constraints as to main system size, availability of device-resident switches, program support, etc., it would permit the sharing of peripheral equipment--with all its attendant advantages--to be readily and economically applied to a much larger population of main computer systems, including, in particular, small- to medium-scale systems.
Moreover, if it were possible to share selected items of peripheral equipment of a main computer system with a secondary computer system without having to duplicate at the secondary system all of the input/output hardware and software resources of the main system, such a secondary system could be smaller in scale and lower in cost than the main computer system. Such a secondary system could, in turn, (1) draw upon the perpheral equipment resources of the larger system to enhance its own performance capabilities, and/or (2) it could be used to augment externally the performance and/or functional capabilities of the main computer system. In the latter role the secondary system could be used in highly coordinated way with the main computer system to which it is attached, for example, to relieve the latter input/output control tasks, or it could operate relatively independent of the main computer system, for example, as an outboard batch processor. In either case, the secondary system could be chosen for its particular suitability to the tasks it is to perform, and the resulting multiprocessing system could have significant performance and/or functional advantages over the original main computer system.
Multiprocessing systems of the above type therefore appear to be quite attractive, and, because of the large population of computer systems from which they could be created, they also appear to be of considerable commercial importance. Thus, it is to provide the means to create this type of multiprocessing system that this invention is primarily directed.
Specifically, it is a purpose of this invention to provide the switching apparatus and controls necessary to permit one or more secondary computer systems to share selected items of peripheral equipment of a main computer system
And, because auxiliary storage devices can be shared without necessarily sharing organized data space (data fields) on such devices, it is another purpose of this invention to provide means for one or more secondary computers to access directly data space organized and controlled by a main computer on shared auxiliary storage devices
The sharing of organized data space in auxiliary storage devices can, however, be accomplished alternatively by indirect-accessing methods of the prior art, that is, by methods which draw upon the existing hardware and access-method software of the main computer to access shared data space in a non-shared auxiliary storage device on behalf of a requesting secondary computer. These methods require that data be routed through the facilities of the main computer--a process which creates a variety of overhead loadings at the main computer system. It is, therefore, a further purpose of this invention to provide means for a main computer system to perform indirect-accessing services on behalf of a requesting secondary computer system without the limitations and disadvantages of prior-art indirect-accessing methods, namely